/**
 * @description 应用常量集合
 * @author TickTock团队
 * @date 2023-10-30
 */

/**
 * 图标系统
 * 定义应用中使用的所有图标和对应的颜色
 */
export const IconSystem = {
  // 图标列表
  iconList: [
    'file-text',    // 工作清单
    'bookmark',     // 学习清单
    'account',      // 个人清单
    'shopping-cart', // 购物清单
    'calendar',     // 日程
    'map',          // 旅行计划
    'heart',        // 健康习惯
    'tags'          // 默认/其他
  ],
  
  // 图标颜色映射
  iconColors: {
    'file-text': '#4285f4',    // 蓝色 - 工作清单
    'bookmark': '#0f9d58',     // 绿色 - 学习清单
    'account': '#f4b400',      // 黄色 - 个人清单
    'shopping-cart': '#db4437', // 红色 - 购物清单
    'calendar': '#673ab7',     // 紫色 - 日程
    'map': '#ff6d00',          // 橙色 - 旅行计划
    'heart': '#00acc1',        // 青色 - 健康习惯
    'tags': '#9e9e9e',         // 灰色 - 默认
  },
  
  // 清单标题与图标的映射
  titleToIcon: {
    '工作清单': 'file-text',
    '学习清单': 'bookmark',
    '个人清单': 'account',
    '购物清单': 'shopping-cart',
    '日程': 'calendar',
    '旅行计划': 'map',
    '健康习惯': 'heart'
  },
  
  /**
   * 根据清单标题获取对应的图标名称
   * @param {String} title - 清单标题
   * @return {String} 图标名称
   */
  getIconByTitle(title) {
    if (!title) return 'tags';
    
    // 先尝试精确匹配
    if (this.titleToIcon[title]) {
      return this.titleToIcon[title];
    }
    
    // 如果没有精确匹配，尝试部分匹配
    for (const key in this.titleToIcon) {
      if (title.includes(key)) {
        return this.titleToIcon[key];
      }
    }
    
    // 如果标题中包含某些关键词，返回对应图标
    if (title.includes('工作') || title.includes('任务')) {
      return 'file-text';
    } else if (title.includes('学习') || title.includes('课程')) {
      return 'bookmark';
    } else if (title.includes('购物') || title.includes('商品')) {
      return 'shopping-cart';
    } else if (title.includes('个人') || title.includes('我的')) {
      return 'account';
    } else if (title.includes('日程') || title.includes('计划')) {
      return 'calendar';
    } else if (title.includes('旅行') || title.includes('旅游')) {
      return 'map';
    } else if (title.includes('健康') || title.includes('锻炼')) {
      return 'heart';
    }
    
    // 默认图标
    return 'tags';
  },
  
  /**
   * 获取图标的颜色
   * @param {String} icon - 图标名称
   * @return {String} 图标颜色
   */
  getIconColor(icon) {
    return this.iconColors[icon] || '#9e9e9e';
  }
}; 